Tipo de programación que divide las tareas en módulos: en el nivel superior del programa encontramos las tareas generales, y, a medida que profundizamos en el código del programa, la programación se vuelve más detallada.